<?php

/**
 * Ce fichier contient la classe generateur.gen_generateurs.
 *

/**
 * Classe ORM qui représente la table 'generateur.gen_generateurs'.
 *

 * @copyright  2010 Samuel Szoniecky
 * @license    "New" BSD License
 */
//require_once '../../Zend/Db/Table/Abstract.php';

class Models_dbtable_generateur_gen_generateurs extends Zend_Db_Table_Abstract
{
    
    /*
     * Nom de la table.
     */
    protected $_name = 'gen_generateurs';
    
    /*
     * Clef primaire de la table.
     */
    protected $_primary = 'id_gen';

    /**
     * Vérifie si une entrée generateur.generateurs existe.
     *
     * @param array $data
     *
     * @return integer
     */
    public function existe($data)
    {
                $select = $this->select();
                $select->from($this, array('id_gen'));
                foreach($data as $k=>$v){
                        $select->where($k.' = ?', $v);
                }
            $rows = $this->fetchAll($select);        
            if($rows->count()>0)$id=$rows[0]->id_gen; else $id=false;
        return $id;
    } 
        
    /**
     * Ajoute une entrée generateur_generateurs.
     *
     * @param array $data
     * @param boolean $existe
     *  
     * @return integer
     */
    public function ajouter($data, $existe=true)
    {
        $id=false;
        if($existe)$id = $this->existe($data);
        if(!$id){
                $id = $this->insert($data);
        }
        return $id;
    } 
           
    /**
     * Recherche une entrée generateur_generateurs avec la clef primaire spécifiée
     * et modifie cette entrée avec les nouvelles données.
     *
     * @param integer $id
     * @param array $data
     *
     * @return void
     */
    public function edit($id, $data)
    {        
        $this->update($data, 'gen_generateurs.id_gen = ' . $id);
    }
    
    /**
     * Recherche une entrée generateur_generateurs avec la clef primaire spécifiée
     * et supprime cette entrée.
     *
     * @param integer $id
     *
     * @return void
     */
    public function remove($id)
    {
        $this->delete('gen_generateurs.id_gen = ' . $id);
    }
    
    /**
     * Récupère toutes les entrées generateur_generateurs avec certains critères
     * de tri, intervalles
     */
    public function getAll($order=null, $limit=0, $from=0)
    {
        $query = $this->select()
                    ->from( array("gen_generateurs" => "gen_generateurs") );
                    
        if($order != null)
        {
            $query->order($order);
        }

        if($limit != 0)
        {            $query->limit($limit, $from);
        }
		try{
        	return $this->fetchAll($query)->toArray();
		}catch (Zend_Exception $e) {
   			echo "Récupère exception: " . get_class($e) . "\n";
    		echo "Message: " . $e->getMessage() . "\n";
		}
    }

    /**
     * Récupère les spécifications des colonnes generateur_generateurs
     */
    public function getCols(){
        $arr = array("cols"=>array(
               array("titre"=>"id_dico","champ"=>"id_dico","visible"=>true),
               array("titre"=>"valeur","champ"=>"valeur","visible"=>true),
         
               ));     
        return $arr;
                
    }     
    
    /*
     * Recherche une entrée generateur_generateurs avec la valeur spécifiée
     * et retourne cette entrée.
     *
     * @param int $id_gen
     */
    public function getById($id_gen)
    {
        $query = $this->select()
                    ->from( array("g" => "gen_generateurs") )                           
                    ->where( "g.id_gen = ?", $id_gen );

        return $this->fetchAll($query)->toArray(); 
    } 
    
}
